// 全局axios实例
import axios from "axios";
import { message } from 'ant-design-vue'

const MyAxios = axios.create({
  baseURL: 'http://localhost:9080',
  timeout: 60000,
  withCredentials: true,
})

// 添加请求拦截器
axios.interceptors.request.use(function (config) {
  // 在发送请求之前做些什么
  return config;
}, function (error) {
  // 对请求错误做些什么
  return Promise.reject(error);
});

// 添加响应拦截器
axios.interceptors.response.use(function (response) {
  try {
    const { data } = response
    if (data.code === 40100) {
      if (!response.request.responseURL.includes('user/get/login') && !window.location.pathname.includes('/user/login')) {
        message.warning('请先登录')
        window.location.href = `/user/login?redirect=${window.location.href}`
      }
    }
    // 对响应数据做点什么
    return response
  } catch (e) {
    message.error('操作失败',e.message)
  }
}, function (error) {
  // 对响应错误做点什么
  return Promise.reject(error);
});

export default MyAxios
